
using System.Collections.Generic;
using System.Threading.Tasks;
using NUnit.Framework;
using Plugins.FormicArch.Core;
using Runtime.Core.GameBehaviour;
using UnityEngine;

namespace GameFramework
{
    public class BaseView<T> :GameFacade, IView,IGameAwakeBehaviour,IGameDestroyBehaviour,IGameStartBehaviour where T:BaseViewModel
    {
        public BaseView()
        {
            Awake();
        }

        public T ViewModel { get; set; }

        
        public async virtual Task Awake()
        {
             await Task.CompletedTask;
        }

        public async Task Destroy()
        {
             UnregisterAll();
             await Task.CompletedTask;
        }

        public async Task Start()
        {
            await Task.CompletedTask;
        }
    }
}